package jp.shuitic.hatebwebhook.twitter.handler;

/**
 * WebHookを実行するクラス.<br>
 * パスワードをチェックする実装HatebHookCheckerと処理を実行するクラスHatebHookExecuteを設定して使用する。
 * @author shuitic
 *
 */
public class HatebHook {
	private HatebHookChecker hatebHookChecker = null;
	private HatebHookExecute hatebHookExecute = null;
	
	public HatebHook() {
	}
	
	public HatebHook(HatebHookChecker hatebHookChecker, HatebHookExecute hatebHookExecute) {
		this.hatebHookChecker = hatebHookChecker;
		this.hatebHookExecute = hatebHookExecute;
	}
	
	/**
	 * はてブのHookを処理する
	 * @param username はてブユーザ名
	 * @param key ウェブフックキー
	 * @param url URL
	 * @param title タイトル
	 * @param status ブックマークHookステータス
	 * @param timestamp タイムスタンプ
	 * @param comment コメント
	 * @param isPrivate プライベートかどうか
	 * @return
	 * @throws Exception
	 */
	public boolean hook(String username, String key, String url, String title, String status, String timestamp, String comment, String isPrivate) throws Exception { 
		if (!hatebHookChecker.checkKey(username, key, url, title, status, timestamp, comment, isPrivate)) {
			return false;
		}
		hatebHookExecute.execute(username, key, url, title, status, timestamp, comment, isPrivate);
		return true;
	}	
}
